공용 게이트웨이 인터페이스(Common Gateway Interface, CGI)는 웹 서버와 외부 프로그램 간의 상호작용을 가능하게 하는 표준 프로토콜이다. CGI는 웹 서버가 클라이언트(사용자의 웹 브라우저)로부터 요청을 받을 때, 이 요청에 응답하기 위해 외부 프로그램이나 스크립트를 실행하도록 허용한다.
CGI는 시스템의 다양한 프로그래밍 언어로 작성된 프로그램을 사용할 수 있도록 하며, 이러한 프로그램들은 일반적으로 데이터베이스 쿼리, 폼 처리, 동적 콘텐츠 생성과 같은 기능을 수행한다. CGI 프로그램은 웹 서버에 의해 호출되며, 입력 값으로 HTTP 요청에 포함된 데이터(예: 폼 입력)를 받아 처리하고, 그 결과를 웹 서버를 통해 클라이언트에게 전송한다.
CGI의 작동 방식은 크게 다음과 같다. 첫째, 클라이언트가 웹 브라우저를 통해 특정 URL에 요청을 보낸다. 둘째, 웹 서버는 해당 URL에 설정된 CGI 프로그램을 찾아 실행한다. 셋째, CGI 프로그램은 사용자가 입력한 데이터와 기타 환경 변수(예: 서버 정보)를 기반으로 필요한 작업을 수행한다. 넷째, 처리 결과를 HTTP 응답 형식으로 웹 서버에 반환하고, 마지막으로 웹 서버는 이 응답을 클라이언트에게 전송한다.
CGI는 초기 웹 개발에서 널리 사용되었지만, 성능의 한계와 보안 문제로 인해 다른 기술(예: 서버 측 스크립팅 언어, 웹 애플리케이션 프레임워크 등)로 대체되는 경우가 많다. 그럼에도 불구하고 CGI는 웹 애플리케이션 개발에 있어 중요한 개념으로 남아 있으며, 특히 특정 환경이나 요구 사항에 따라 여전히 사용되고 있는 경우도 있다.